home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / tmdsp / tmouse.c < prev    next >
C/C++ Source or Header  |  1991-10-18  |  1KB  |  64 lines

  1. /*
  2.     TMOUSE.C Ver 0.02 1991.08.09  by Y.Kurihara (Nif PDC01620)"
  3.  
  4.     マウスのボタンが押されるのを待ち、X、Y座標を環境変数に設定する。
  5.     ボタンの状態をエラーコードとして返す。
  6.  
  7.     TMOUSE [<X座標> <Y座標>]  (座標はカーソルの初期値となる)
  8. */
  9.  
  10. #include  <stdlib.h>
  11. #include  <mos.h>
  12. #include  "environ.h"
  13.  
  14. char  moswork[MosWorkSize];
  15.  
  16. char *int2str( char *str,int num )
  17. {
  18.     if( num < 0 ) {
  19.         *str++ = '-';
  20.         num = -num;
  21.     }
  22.     if( num > 9 )  str = int2str( str,num / 10 );
  23.     *str++ = num % 10 + '0';
  24.     *str   = 0;
  25.     return( str );
  26. }
  27.  
  28. void main( int argc,char **argv )
  29. {
  30.     int  bt,lx,ly;
  31.     int  env;
  32.     char buf[20];
  33.  
  34.     MOS_start(moswork,MosWorkSize) ;
  35.     MOS_resolution(0,3) ;
  36.     MOS_disp(1) ;
  37.  
  38.     if( argc >= 3 ) {
  39.         lx = atoi( argv[1] );
  40.         ly = atoi( argv[2] );
  41.         lx = lx * 8  + 4;
  42.         ly = ly * 16 + 8;
  43.         MOS_setpos( lx,ly );
  44.     }
  45.  
  46.     do {
  47.         MOS_rdpos( &bt,&lx,&ly ) ;
  48.     } while ( bt == 0 ) ;
  49.  
  50.     MOS_end() ;
  51.  
  52.     env = pspenv( getcpid() );
  53.  
  54.     lx = lx / 8;
  55.     int2str( buf,lx );
  56.     envset( "X",buf,env );
  57.  
  58.     ly = ly / 16;
  59.     int2str( buf,ly );
  60.     envset( "Y",buf,env );
  61.  
  62.     exit( bt );
  63. }
  64.